package ch01.text00.tx07;

import java.lang.reflect.Array;

public class MainTest01 {
    public static void main(String[] args) throws Exception {
        //八、使用反射，创建一个学生类型的数组，存放二个学生，循环遍历输出，要求如下：
        Object obj = Array.newInstance(Student.class, 2);
        //Array.set(obj ,  0 , new Student("第一个学生"))  ;
        //Array.set(obj ,  1 , new Student("第二个学生"))  ;

        //1、第一个学生要求使用默认构造方法实例化并使用用 set 方法初始化对象
        Class<?> clz = Student.class;
        Object object = clz.getConstructor().newInstance();
        Array.set(obj,0,object);

        //2、第二个学生要求使用下面的构造方法实例化对象
        Object object1 = clz.getConstructor(String.class,int.class,Double.class).newInstance("ss",11, 11.0);
        Array.set(obj,1,object1);

        // 遍历输出
        for (int i = 0; i < Array.getLength(obj); i++) {
            Student student = (Student) Array.get(obj, i);
            System.out.println("学生 " + (i + 1) + "：" + student.getName()+ student.getAge());
        }
    }
}
